100 REM *** FAC1 FACTS *** 110 REM *** BY JOHN HOUGHTON *** 120 REM *** COLLINGWOOD ONT *** 130 REM *** AUGUST 1986 *** 140 REM 150 REM PAL SOURCE CODE 160 REM 170 SYS700 180 ; 190 .OPT OO 200 ; 210 *= $C000 220 ; 230 ;A ROUTINE TO DEMONSTRATE THE USE 240 ;OF FLOATING POINT NUMBERS, THE 250 ;ASSOCIATED FLOATING POINT 260 ;ACCUMULATORS AND ROM ROUTINES. 270 ; 280 LDA #$00 290 STA COUNT ;CLEAR INTEGER 300 STA COUNT+1 ;STORAGE 310 LDA $7A ;STORE CHRGET 320 STA GETLO ;POINTERS 330 LDA $7B 340 STA GETHI 350 LDA #BUFFR1 380 STA $7B 390 JSR $0079 ;CALL CHR(null)T 400 JSR $BCF3 ;ASCII TO FAC1 410 JSR $BBCA ;FAC1 TO MEM $57 420 LDA #BUFFR2 450 STA $7B 460 JSR $0079 ;CALL CHR(null)T 470 JSR $BCF3 ;ASCII TO FAC1 480 JSR $BBC7 ;FAC1 TO MEM $5C 490 LDA #$57 500 LDY #$00 510 JSR $BA28 ;$57 TO FAC2 & MULT 520 JSR $BBCA ;PRODUCT TO $57 530 ; 540 ADD = * 550 LDA #$5C 560 LDY #$00 570 JSR $BBA2 ;$5C TO FAC1 580 LDX $61 ;EXPONENT FAC1 590 JSR $B86A ;ADD FAC2 TO FAC1 600 JSR $BC0F ;SUM TO FAC2 610 INC COUNT ;INC NUMBER OF 620 BNE NEX ;ADDITIONS 630 INC COUNT+1 640 ; 650 NEX = * 660 LDA #$57 670 LDY #$00 680 JSR $BC5B ;COMPARE SUM & PROD 690 BMI ADD ;FAC1 < $57 700 JSR $BDDD ;FAC1 TO ASCII 710 JSR $AB1E ;PRINT SUM 720 LDA #$0D 730 JSR $FFD2 740 LDA #$57 750 LDY #$00 760 JSR $BBA2 ;$57 TO FAC1 770 JSR $BDDD ;FAC1 TO ASCII 780 JSR $AB1E ;PRINT PRODUCT 790 LDA #$0D 800 JSR $FFD2 810 LDA COUNT+1 ;GET COUNT OF 820 LDX COUNT ;ADDITIONS CONVERT 830 JSR $BDCD ;INT TO ASCII 840 JSR $AB1E ;PRINT COUNT 850 LDA GETLO 860 STA $7A ;RESTORE CHRGET 870 LDA GETHI 880 STA $7B 890 RTS 900 ; 910 COUNT *= *+2 920 GETLO *= *+1 930 GETHI *= *+1 940 ; 950 BUFFR1 .ASC "10.125" 960 .BYTE $00 970 ; 980 BUFFR2 .ASC "6.375" 990 .BYTE $00